package gpl.pierrick.brihaye.aramorph;

import java.util.Collection;
import java.util.Iterator;

public interface SolutionsHandler {

	/** Whether or not the word already gave solutions.
	 * @param translitered The word
	 * @return The result
	 */
	public boolean hasSolutions(String translitered);

	/** Returns an iterator on the solutions of the given word.
	 * @param translitered The word
	 * @return The iterator
	 */
	public Iterator<Solution> getSolutionsIterator(String translitered);

	/** Add alternative spellings for the given word.
	 * @param translitered The word
	 * @param alt The alternative spellings
	 */
	public void addAlternativeSpellings(String translitered, Collection<String> alt);
	
	/** Whether or not the word already gave alternative spellings.
	 * @param translitered The word
	 * @return The result
	 */
	public boolean hasAlternativeSpellings(String translitered);
	
	/** Returns an iterator on the alternative spellings of the given word.
	 * @param translitered The word
	 * @return The iterator
	 */
	public Iterator<String> getAlternativeSpellingsIterator(String translitered);

	/** Add solutions for the given word.
	 * @param translitered The word
	 * @param sol The solutions
	 */
	public void addSolutions(String translitered, Collection<Solution> sol);
}